package mis.ds.ps.model.factories;

import mis.ds.ps.model.obj.Aulas;
import mis.ds.ps.model.obj.Cursos;
import mis.ds.ps.model.obj.Disciplinas;
import mis.ds.ps.model.obj.Docentes;
import mis.ds.ps.model.obj.Horarios;
import mis.ds.ps.model.obj.Modulos;
import mis.ds.ps.model.obj.Salas;
import mis.ds.ps.model.obj.SiglasTiposDeAulas;
import mis.ds.ps.model.obj.Tabelas;
import mis.ds.ps.model.obj.TabelasDisciplinas;
import mis.ds.ps.model.obj.TabelasDisciplinasTurmas;
import mis.ds.ps.model.obj.TemposEvitar;
import mis.ds.ps.model.obj.TemposOcupadosSalas;
import mis.ds.ps.model.obj.TiposDeAulas;
import mis.ds.ps.model.obj.Turmas;
import mis.ds.ps.model.obj.TurmasModulos;

import org.springframework.stereotype.Component;

import com.felees.hbnpojogen.randomlib.data.dataGeneration.BasicDataGenerator;



/** 
 * DAO factory implementation.
 * @author autogenerated
 */
@Component
public class TimetableDataPoolFactory {
	/** DB commit order. */
	private static final String[] commitOrder = new String[]{"TurmasModulos", "Turmas", "TiposDeAulas", "TemposOcupadosSalas", "TemposEvitar", "TabelasDisciplinasTurmas", "TabelasDisciplinas", "Tabelas", "SiglasTiposDeAulas", "Salas", "Modulos", "Horarios", "Docentes", "Disciplinas", "Cursos", "Aulas"};

    /**
     * Data pool factory for Aulas.
     * @return AulasA Aulas object
     */
    public static Aulas getAulas() {

        Aulas aulas = new Aulas();    
        
        aulas.setDia(BasicDataGenerator.generateRandomInt());
        aulas.setDuracao(BasicDataGenerator.generateRandomDouble());
        aulas.setHora(BasicDataGenerator.generateRandomDouble());
        aulas.setOrdem(BasicDataGenerator.generateRandomInt());
        aulas.setSalaId(BasicDataGenerator.generateRandomLong());
        aulas.setTurmaId(BasicDataGenerator.generateRandomLong());

        return aulas;
    }

    /**
     * Data pool factory for Cursos.
     * @return CursosA Cursos object
     */
    public static Cursos getCursos() {

        Cursos cursos = new Cursos();    
        
        cursos.setCodigo(BasicDataGenerator.generateRandomInt());
        cursos.setHorariosId(BasicDataGenerator.generateRandomLong());
        cursos.setNome(BasicDataGenerator.generateRandomString(256));
        cursos.setSigla(BasicDataGenerator.generateRandomString(256));

        return cursos;
    }

    /**
     * Data pool factory for Disciplinas.
     * @return DisciplinasA Disciplinas object
     */
    public static Disciplinas getDisciplinas() {

        Disciplinas disciplinas = new Disciplinas();    
        
        disciplinas.setCodigo(BasicDataGenerator.generateRandomInt());
        disciplinas.setHorariosId(BasicDataGenerator.generateRandomLong());
        disciplinas.setNome(BasicDataGenerator.generateRandomString(256));
        disciplinas.setSigla(BasicDataGenerator.generateRandomString(256));

        return disciplinas;
    }

    /**
     * Data pool factory for Docentes.
     * @return DocentesA Docentes object
     */
    public static Docentes getDocentes() {

        Docentes docentes = new Docentes();    
        
        docentes.setCodigo(BasicDataGenerator.generateRandomInt());
        docentes.setEmail(BasicDataGenerator.generateRandomString(256));
        docentes.setHorariosId(BasicDataGenerator.generateRandomLong());
        docentes.setNome(BasicDataGenerator.generateRandomString(256));
        docentes.setPreferencias(BasicDataGenerator.generateRandomString(1024));
        docentes.setSigla(BasicDataGenerator.generateRandomString(256));
        docentes.setTelefone(BasicDataGenerator.generateRandomLong());

        return docentes;
    }

    /**
     * Data pool factory for Horarios.
     * @return HorariosA Horarios object
     */
    public static Horarios getHorarios() {

        Horarios horarios = new Horarios();    
        
        horarios.setNome(BasicDataGenerator.generateRandomString(256));
        horarios.setVersion(BasicDataGenerator.generateRandomInt());

        return horarios;
    }

    /**
     * Data pool factory for Modulos.
     * @return ModulosA Modulos object
     */
    public static Modulos getModulos() {

        Modulos modulos = new Modulos();    
        
        modulos.setCodigo(BasicDataGenerator.generateRandomInt());
        modulos.setFim(BasicDataGenerator.generateDate());
        modulos.setHorariosId(BasicDataGenerator.generateRandomLong());
        modulos.setInicio(BasicDataGenerator.generateDate());
        modulos.setNome(BasicDataGenerator.generateRandomString(256));

        return modulos;
    }

    /**
     * Data pool factory for Salas.
     * @return SalasA Salas object
     */
    public static Salas getSalas() {

        Salas salas = new Salas();    
        
        salas.setCodigo(BasicDataGenerator.generateRandomInt());
        salas.setHorariosId(BasicDataGenerator.generateRandomLong());
        salas.setSigla(BasicDataGenerator.generateRandomString(256));

        return salas;
    }

    /**
     * Data pool factory for SiglasTiposDeAulas.
     * @return SiglasTiposDeAulasA SiglasTiposDeAulas object
     */
    public static SiglasTiposDeAulas getSiglasTiposDeAulas() {

        SiglasTiposDeAulas siglasTiposDeAulas = new SiglasTiposDeAulas();    
        
        siglasTiposDeAulas.setCodigo(BasicDataGenerator.generateRandomInt());
        siglasTiposDeAulas.setHorariosId(BasicDataGenerator.generateRandomLong());
        siglasTiposDeAulas.setNome(BasicDataGenerator.generateRandomString(256));
        siglasTiposDeAulas.setOrdem(BasicDataGenerator.generateRandomInt());
        siglasTiposDeAulas.setSigla(BasicDataGenerator.generateRandomString(256));

        return siglasTiposDeAulas;
    }

    /**
     * Data pool factory for Tabelas.
     * @return TabelasA Tabelas object
     */
    public static Tabelas getTabelas() {

        Tabelas tabelas = new Tabelas();    
        
        tabelas.setCodigo(BasicDataGenerator.generateRandomInt());
        tabelas.setCursoId(BasicDataGenerator.generateRandomLong());
        tabelas.setDenom(BasicDataGenerator.generateRandomInt());
        tabelas.setNome(BasicDataGenerator.generateRandomString(256));
        tabelas.setSigla(BasicDataGenerator.generateRandomString(256));

        return tabelas;
    }

    /**
     * Data pool factory for TabelasDisciplinas.
     * @return TabelasDisciplinasA TabelasDisciplinas object
     */
    public static TabelasDisciplinas getTabelasDisciplinas() {

        TabelasDisciplinas tabelasDisciplinas = new TabelasDisciplinas();    
        
        tabelasDisciplinas.setCodigo(BasicDataGenerator.generateRandomInt());
        tabelasDisciplinas.setDisciplinaId(BasicDataGenerator.generateRandomLong());
        tabelasDisciplinas.setTabelaId(BasicDataGenerator.generateRandomLong());

        return tabelasDisciplinas;
    }

    /**
     * Data pool factory for TabelasDisciplinasTurmas.
     * @return TabelasDisciplinasTurmasA TabelasDisciplinasTurmas object
     */
    public static TabelasDisciplinasTurmas getTabelasDisciplinasTurmas() {

        TabelasDisciplinasTurmas tabelasDisciplinasTurmas = new TabelasDisciplinasTurmas();    
        
        tabelasDisciplinasTurmas.setAte(BasicDataGenerator.generateRandomInt());
        tabelasDisciplinasTurmas.setDe(BasicDataGenerator.generateRandomInt());
        tabelasDisciplinasTurmas.setTabelaDisciplinaId(BasicDataGenerator.generateRandomLong());
        tabelasDisciplinasTurmas.setTurmaId(BasicDataGenerator.generateRandomLong());

        return tabelasDisciplinasTurmas;
    }

    /**
     * Data pool factory for TemposEvitar.
     * @return TemposEvitarA TemposEvitar object
     */
    public static TemposEvitar getTemposEvitar() {

        TemposEvitar temposEvitar = new TemposEvitar();    
        
        temposEvitar.setDia(BasicDataGenerator.generateRandomInt());
        temposEvitar.setDocenteId(BasicDataGenerator.generateRandomLong());
        temposEvitar.setDuracao(BasicDataGenerator.generateRandomDouble());
        temposEvitar.setGrau(BasicDataGenerator.generateRandomInt());
        temposEvitar.setHora(BasicDataGenerator.generateRandomDouble());
        temposEvitar.setObs(BasicDataGenerator.generateRandomString(256));

        return temposEvitar;
    }

    /**
     * Data pool factory for TemposOcupadosSalas.
     * @return TemposOcupadosSalasA TemposOcupadosSalas object
     */
    public static TemposOcupadosSalas getTemposOcupadosSalas() {

        TemposOcupadosSalas temposOcupadosSalas = new TemposOcupadosSalas();    
        
        temposOcupadosSalas.setDia(BasicDataGenerator.generateRandomInt());
        temposOcupadosSalas.setDuracao(BasicDataGenerator.generateRandomDouble());
        temposOcupadosSalas.setHora(BasicDataGenerator.generateRandomDouble());
        temposOcupadosSalas.setObs(BasicDataGenerator.generateRandomString(256));
        temposOcupadosSalas.setSalaId(BasicDataGenerator.generateRandomLong());

        return temposOcupadosSalas;
    }

    /**
     * Data pool factory for TiposDeAulas.
     * @return TiposDeAulasA TiposDeAulas object
     */
    public static TiposDeAulas getTiposDeAulas() {

        TiposDeAulas tiposDeAulas = new TiposDeAulas();    
        
        tiposDeAulas.setDisciplinaId(BasicDataGenerator.generateRandomLong());
        tiposDeAulas.setSiglaId(BasicDataGenerator.generateRandomLong());
        tiposDeAulas.setTempo(BasicDataGenerator.generateRandomDouble());

        return tiposDeAulas;
    }

    /**
     * Data pool factory for Turmas.
     * @return TurmasA Turmas object
     */
    public static Turmas getTurmas() {

        Turmas turmas = new Turmas();    
        
        turmas.setOrdem(BasicDataGenerator.generateRandomInt());
        turmas.setTipoDeAulaId(BasicDataGenerator.generateRandomLong());

        return turmas;
    }

    /**
     * Data pool factory for TurmasModulos.
     * @return TurmasModulosA TurmasModulos object
     */
    public static TurmasModulos getTurmasModulos() {

        TurmasModulos turmasModulos = new TurmasModulos();    
        
        turmasModulos.setDocenteId(BasicDataGenerator.generateRandomLong());
        turmasModulos.setModuloId(BasicDataGenerator.generateRandomLong());
        turmasModulos.setTurmaId(BasicDataGenerator.generateRandomLong());

        return turmasModulos;
    }
    /** Returns the commit order of this database. 
	 * Useful for iterating through the classes for deletion in the right order. 
	 * @return String[] list of classes
	 */
	public static String[] getDBCommitOrder() {
		return commitOrder;
	}
}